home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / BIOSDOS.LZH / DOSREF2.CRD < prev    next >
Text File  |  1987-08-13  |  32KB  |  245 lines

  1. SAU
  2.                                                                         |                                                         |
  3.                7  INT 21 - FUNCTION REQUEST (CONT.)                     | 8          ┌───────────────────────────────┐            |
  4.                                                                         |            │ PROGRAM SEGMENT PREFIX LAYOUT │            |
  5.               AH = 5C - LOCK/UNLOCK FILE ACCESS                         |            └───────────────────────────────┘            |
  6.                   INPUT: AL = 00 TO LOCK; AL=01 TO UNLOCK               |                                                         |
  7.                          BX = FILE HANDLE                               |   BYTE                    FUNCTION                      |
  8.                          CX = OFFSET HIGH                               |                                                         |
  9.                          DX = OFFSET LOW                                |  00-01 -  INT 20 INSTRUCTION                            |
  10.                          SI = LENGTH HIGH                               |  02-03 -  TOP OF MEMORY IN SEGMENT (PARAGRAPH) FORM     |
  11.                          DI = LENGTH LOW                                |    04  -  RESERVED                                      |
  12.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |  05-09 -  LONG CALL TO THE DOS FUNCTION DISPATCHER      |
  13.                                                                         | (06-07 -  NUMBER OF BYTES AVAILABLE IN THIS SEGMENT)    |
  14.               AH = 62 - GET PROGRAM SEGMENT PREFIX ADDRESS              |  0A-0D -  TERMINATE ADDRESS (IP,CS)                     |
  15.                   INPUT: NONE                                           |  0E-11 -  CTL-BREAK EXIT ADDRESS (IP,CS)                |
  16.                  OUTPUT: BX = SEGMENT ADDRESS OF CURRENT PROCESS        |  12-15 -  CRITICAL ERROR EXIT ADDRESS (IP,CS)           |
  17.                                                                         |  16-2B -  USED BY DOS                                   |
  18.                                                                         |  2C-2D -  SEGMENT ADDRESS OF THE ENVIRONMENT            |
  19.                           ┌────────────────────────────┐                |  2E-5B -  USED BY DOS                                   |
  20.                           │ INT 22 - PROGRAM TERMINATE │                |  5C-6B -  FORMATTED AS A STANDARD UNOPENED FCB          |
  21.                           └────────────────────────────┘                |  6C-7F -  FORMATTED AS A STANDARD UNOPENED FCB          |
  22.                                                                         |    80  -  NUMBER OF CHARACTERS ENTERED AFTER FILENAME   |
  23.                 INPUT: NONE. DO NOT EXECUTE THIS INTERRUPT DIRECTLY.    |  81-FF -  ALL CHARACTERS ENTERED AFTER THE FILENAME     |
  24.                        SEE DOS MANUAL FOR MORE INFORMATION.             |                                                         |
  25.                                                                         |                                                         |
  26.                                                                         |                  ┌─────────────────────┐                |
  27.                       ┌─────────────────────────────────┐               |                  │ DIRECTORY STRUCTURE │                |
  28.                       │ INT 23 - CTL BREAK EXIT ADDRESS │               |                  └─────────────────────┘                |
  29.                       └─────────────────────────────────┘               |                                                         |
  30.                                                                         |   BYTE              DESCRIPTION                         |
  31.                 INPUT: NONE. DO NOT EXECUTE THIS INTERRUPT DIRECTLY.    |                                                         |
  32.                        SEE DOS MANUAL FOR MORE INFORMATION.             |    00  -  FILENAME STATUS:                              |
  33.                                                                         |              00 = FILENAME NEVER USED                   |
  34.                                                                         |              05 = FIRST CHARACTER OF FILENAME IS E5     |
  35.                       ┌─────────────────────────────────┐               |              E5 = FILE HAS BEEN ERASED                  |
  36.                       │ INT 24 - CRITICAL ERROR HANDLER │               |              2E = THIS IS A SUBDIRECTORY ENTRY          |
  37.                       └─────────────────────────────────┘               |  00-07 -  FILENAME, LEFT JUSTIFIED                      |
  38.                                                                         |  08-0A -  FILENAME EXTENTION, LEFT JUSTIFIED            |
  39.                 INPUT: NONE. DO NOT EXECUTE THIS INTERRUPT DIRECTLY.    |    0B  -  FILE'S ATTRIBUTE:                             |
  40.                        SEE DOS MANUAL FOR MORE INFORMATION.             |              ┌─┬─┬─┬─┬─┬─┬─┬─┐                          |
  41.                                                                         |              │7│6│5│4│3│2│1│0│ BYTE 0B                  |
  42.                                                                         |              └─┴─┴─┴─┴─┴─┴─┴─┘                          |
  43.                         ┌─────────────────────────────┐                 |               │ │ │ │ │ │ │ │                           |
  44.                         │ INT 25 - ABSOLUTE DISK READ │                 |               │ │ │ │ │ │ │ └───── READ ONLY            |
  45.                         └─────────────────────────────┘                 |               │ │ │ │ │ │ └─────── HIDDEN               |
  46.                                                                         |               │ │ │ │ │ └───────── SYSTEM               |
  47.                 INPUT: AL = DRIVE NUMBER (0=A)                          |               │ │ │ │ └─────────── VOLUME LABEL         |
  48.                        CX = NUMBER OF SECTORS TO READ                   |               │ │ │ └───────────── SUBDIRECTORY         |
  49.                        DX = BEGINNING LOGICAL SECTOR NUMBER             |               │ │ └─────────────── ARCHIVE              |
  50.                        DS:BX = TRANSFER ADDRESS                         |               └─┴───────────────── UNUSED               |
  51.                OUTPUT: AL = DOS ERROR CODE IF CARRY SET                 |  0C-15 -  RESERVED BY DOS                               |
  52.                        AH = BIOS ERROR CODE IF CARRY SET:               |  16-17 -  TIME THE FILE WAS CREATED OR LAST UPDATED:    |
  53.                             80 = ATTACHMENT FAILED TO RESPOND           |           ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐             |
  54.                             40 = SEEK FAILED                            |           │F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ 17,16       |
  55.                             08 = BAD CRC ON DISKETTE                    |           └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘             |
  56.                             04 = SECTOR NOT FOUND                       |            │ │ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴─ SECONDS/2   |
  57.                             03 = WRITE PROTECT                          |            │ │ │ │ │ └─┴─┴─┴─┴─┴─────────── MINUTES     |
  58.                             02 = OTHER ERROR                            |            └─┴─┴─┴─┴─────────────────────── HOURS       |
  59.                  NOTE: CALLER FLAGS RETURNED ON STACK                   |  18-19 -  DATE THE FILE WAS CREATED OR LAST UPDATED:    |
  60.                                                                         |           ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐             |
  61.                         ┌──────────────────────────────┐                |           │F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ 19,18       |
  62.                         │ INT 26 - ABSOLUTE DISK WRITE │                |           └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘             |
  63.                         └──────────────────────────────┘                |            │ │ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴─ DAY 1-31    |
  64.                                                                         |            │ │ │ │ │ │ │ └─┴─┴─┴─────────── MONTH 1-12  |
  65.                 INPUT: AL = DRIVE NUMBER (0=A)                          |            └─┴─┴─┴─┴─┴─┴─────────────────── YEAR + 1980 |
  66.                        CX = NUMBER OF SECTORS TO WRITE                  |  1A-1B -  STARTING CLUSTER NUMBER OF THE FIRST CLUSTER  |
  67.                        DX = BEGINNING LOGICAL SECTOR NUMBER             |           OF THE FILE                                   |
  68.                        DS:BX = TRANSFER ADDRESS                         |  1C-1F -  FILE SIZE IN BYTES (LOW ORDER FIRST)          |
  69.                OUTPUT: AL = DOS ERROR CODE IF CARRY SET                 |                                                         |
  70.                        AH = BIOS ERROR CODE IF CARRY SET:               |                                                         |
  71.                             80 = ATTACHMENT FAILED TO RESPOND           |          ┌─────────────────────────────────┐            |
  72.                             40 = SEEK FAILED                            |          │ FILE CONTROL BLOCK (FCB) LAYOUT │            |
  73.                             08 = BAD CRC ON DISKETTE                    |          └─────────────────────────────────┘            |
  74.                             04 = SECTOR NOT FOUND                       |                                                         |
  75.                             03 = WRITE PROTECT                          |  BYTE                 FUNCTION                          |
  76.                             02 = OTHER ERROR                            |                                                         |
  77.                  NOTE: CALLER FLAGS RETURNED ON STACK                   |   -7      FLAG CONTAINING FF IF THIS IS AN EXTENDED FCB |
  78.                                                                         | -6 TO -2  RESERVED                                      |
  79.                     ┌──────────────────────────────────────┐            |   -1      DIRECTORY ATTRIBUTE BYTE                      |
  80.                     │ INT 27 - TERMINATE BUT STAY RESIDENT │            |    0      DRIVE NUMBER (0 FOR DEFAULT DRIVE)            |
  81.                     └──────────────────────────────────────┘            |  1 TO 8   FILENAME, LEFT JUSTIFIED WITH TRAILING BLANKS |
  82.                                                                         |  9 TO 11  FILENAME EXTENSION, LEFT JUSTIFIED W/BLANKS   |
  83.                 INPUT: DS:DX = PROGRAM'S LAST ADDRESS PLUS ONE          |  12,13    CURRENT BLOCK NUMBER RELATIVE TO START OF FILE|
  84.                OUTPUT: NONE                                             |  14,15    LOGICAL RECORD SIZE IN BYTES                  |
  85.                                                                         | 16 TO 19  FILE SIZE IN BYTES                            |
  86.                                                                         |  20,21    DATE THE FILE WAS CREATED OR LAST UPDATED     |
  87.                        ┌──────────────────────────────┐                 |           ┌─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┐             |
  88.                        │ INT 2F - PRINT.COM INTERFACE │                 |           │F│E│D│C│B│A│9│8│7│6│5│4│3│2│1│0│ 21,20       |
  89.                        └──────────────────────────────┘                 |           └─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘             |
  90.                                                                         |            │ │ │ │ │ │ │ │ │ │ │ └─┴─┴─┴─┴─ DAY 1-31    |
  91.               AL = 00 - GET INSTALLED STATE                             |            │ │ │ │ │ │ │ └─┴─┴─┴─────────── MONTH 1-12  |
  92.                   INPUT: NONE                                           |            └─┴─┴─┴─┴─┴─┴─────────────────── YEAR + 1980 |
  93.                  OUTPUT: AL = 00 IF NOT INSTALLED, OK TO INSTALL        |                                                         |
  94.                          AL = 01 IF NOT INSTALLED, NOT OK TO INSTALL    | 22 TO 31  RESERVED FOR SYSTEM USE                       |
  95.                          AL = FF IF INSTALLED                           |   32      CURRENT RELATIVE RECORD NUMBER WITHIN CURRENT |
  96.                                                                         |           BLOCK                                         |
  97.               AL = 01 - SUBMIT FILE                                     | 22 TO 36  RELATIVE RECORD NUMBER FROM START OF FILE     |
  98.                   INPUT: DS:DX = POINTER TO A SUBMIT PACKET CONSISTING  |                                                         |
  99.                                  OF THE LEVEL (BYTE) AND A DWORD        | NOTE: POINT TO BYTE 0 FOR STANDARD FILE CONTROL BLOCK,  |
  100.                                  POINTER TO AN ASCIIZ PATH/FILENAME     |       POINT TO BYTE "-7" FOR EXTENDED FILE CONTROL BLOCK|
  101.                  OUTPUT: NONE                                           |                                                         |
  102.                                                                         |                                                         |
  103.               AL = 02 - CANCEL FILE                                     |               ┌────────────────────┐                    |
  104.                   INPUT: DS:DX = POINTER TO ASCIIZ FILENAME TO CANCEL   |               │ BOOT SECTOR LAYOUT │                    |
  105.                  OUTPUT: NONE                                           |               └────────────────────┘                    |
  106.                                               │                         |                                                         |
  107.               AL = 03 - CANCEL ALL FILES      │ ---- ERROR CODES ----   | OFFSET    SIZE          DESCRIPTION                     |
  108.                   INPUT: NONE                 │                         |   00     3 BYTES   JUMP TO EXECUTABLE CODE              |
  109.                  OUTPUT: NONE                 │ 01 - INVALID FUNCTION   |   03     8 BYTES   OEM NAME AND VERSION                 |
  110.                                               │ 02 - FILE NOT FOUND     |   0B     1 WORD    BYTES PER SECTOR                     |
  111.               AL = 04 - PAUSE / RETURN STATUS │ 03 - PATH NOT FOUND     |   0D     1 BYTE    SECTORS PER ALLOCATION UNIT          |
  112.                   INPUT: NONE                 │ 04 - TOO MANY FILES     |   0E     1 WORD    RESERVED SECTORS (STARTING AT 0)     |
  113.                  OUTPUT: DX = ERROR COUNT     │ 05 - ACCESS DENIED      |   10     1 BYTE    NUMBER OF FATS                       |
  114.                          DS:SI = POINTER TO   │ 08 - QUEUE FULL         |   11     1 WORD    NUMBER OF ROOT DIR. ENTRIES ALLOWED  |
  115.                                  PRINT QUEUE  │ 09 - BUSY               |   13     1 WORD    TOTAL NUMBER OF SECTORS IN MEDIA     |
  116.                                               │ 0C - NAME TOO LONG      |   15     1 BYTE    MEDIA DESCRIPTOR                     |
  117.               AL = 05 - END OF STATUS         │ 0F - INVALID DRIVE      |   16     1 WORD    NUMBER OF SECTORS PER FAT            |
  118.                   INPUT: NONE                 │                         |   18     1 WORD    SECTORS PER TRACK                    |
  119.                  OUTPUT: AX = ERROR CODE      │                         |   1A     1 WORD    NUMBER OF HEADS                      |
  120.                                                                         |   1C     1 WORD    NUMBER OF HIDDEN SECTORS             |
  121.                                                                         |                                                         |
  122.  
  123.  
  124.                5  INT 21 - FUNCTION REQUEST (CONT.)                     |                                                         |
  125.                                                                         | 6    INT 21 - FUNCTION REQUEST (CONT.)                  |
  126.               AH = 2F - GET DISK TRANSFER ADDRESS (DTA)                 |                                                         |
  127.                   INPUT: NONE                                           | AH = 43 - CHANGE FILE MODE                              |
  128.                  OUTPUT: ES:BX = THE CURRENT DTA                        |       INPUT: DS:DX = POINTER TO AN ASCIIZ PATH NAME     |
  129.                                                                         |              CX = ATTRIBUTE                             |
  130.               AH = 30 - GET DOS VERSION NUMBER                          |              AL = 00 TO GET ATTRIBUTE; 01 TO SET        |
  131.                   INPUT: NONE                                           |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  132.                  OUTPUT: AL = MAJOR VERSION NUMBER (LEFT OF DECIMAL)    |              CX = THE ATTRIBUTE                         |
  133.                          AH = MINOR VERSION NUMBER (RIGHT OF DECIMAL)   |                                                         |
  134.                          BX,CX = 0000                                   | AH = 44 - I/O CONTROL FOR DEVICES                       |
  135.                                                                         |       INPUT: DS:DX = DATA OR BUFFER                     |
  136.               AH = 31 - TERMINATE PROCESS AND REMAIN RESIDENT           |              CX = NUMBER OF BYTES TO READ OR WRITE      |
  137.                   INPUT: AL = EXIT CODE (RETURNED TO BATCH FILES)       |              BX = FILE HANDLE                           |
  138.                          DX = THE MEMORY SIZE IN PARAGRAPHS             |              BL = DEVICE NUMBER (0=DEFAULT)             |
  139.                  OUTPUT: NONE                                           |              AL = FUNCTION VALUE                        |
  140.                                                                         |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  141.               AH = 33 - GET/SET CTL-BREAK CHECK STATE                   |              AX = # OF BYTES XFERRED IF CARRY NOT SET   |
  142.                   INPUT: AL = 00 TO REQUEST CURRENT STATE               |        NOTE: SEE DOS MANUAL FOR FUNCTION VALUES         |
  143.                          AL = 01 TO SET CURRENT STATE                   |                                                         |
  144.                          DL = 00 TO SET STATE OFF; DL=01 TO SET ON      | AH = 45 - DUPLICATE A FILE HANDLE                       |
  145.                  OUTPUT: DL = THE CURRENT STATE (00=OFF, 01=ON)         |       INPUT: BX = FILE HANDLE                           |
  146.                                                                         |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  147.               AH = 35 - GET VECTOR                                      |              AX = NEW FILE HANDLE IF CARRY NOT SET      |
  148.                   INPUT: AL = VECTOR NUMBER                             |                                                         |
  149.                  OUTPUT: ES:BX = POINTER TO INTERRUPT HANDLER           | AH = 46 - FORCE A DUPLICATE OF A FILE HANDLE            |
  150.                                                                         |       INPUT: BX = EXISTING FILE HANDLE                  |
  151.               AH = 36 - GET DISK FREE SPACE                             |              CX = SECOND FILE HANDLE                    |
  152.                   INPUT: DL = DRIVE NUMBER (0=DEFAULT)                  |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  153.                  OUTPUT: BX = AVAILABLE CLUSTERS                        |                                                         |
  154.                          DX = CLUSTERS PER DRIVE                        | AH = 47 - GET THE CURRENT DIRECTORY                     |
  155.                          CX = BYTES PER SECTOR                          |       INPUT: DS:SI = POINTER TO A 64 BYTE USER AREA     |
  156.                          AX = FFFF IF DRIVE HAS INVALID SECTORS/CLUSTER |              DL = DRIVE NUMBER (0=DEFAULT)              |
  157.                                                                         |      OUTPUT: DS:SI = POINTER TO PATH NAME FROM ROOT     |
  158.               AH = 38 - GET COUNTRY DEPENDENT INFORMATION               |              AX = ERROR CODE IF CARRY SET               |
  159.                   INPUT: DS:DX = POINTER TO BUFFER FOR RETURNED DATA    |                                                         |
  160.                          AL = 00 TO GET CURRENT COUNTRY INFORMATION     | AH = 48 - ALLOCATE MEMORY                               |
  161.                          AL = 01-FE FOR COUNTRY CODES < 255             |       INPUT: BX = # OF PARAGRAPHS OF MEMORY REQUESTED   |
  162.                          AL = FF FOR COUNTRY CODES >255                 |      OUTPUT: AX:0 = POINTER TO ALLOCATED MEMORY BLOCK   |
  163.                          BX = COUNTRY CODE IF AL = FF                   |              AX = ERROR CODE IF CARRY SET               |
  164.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |              BX = SIZE OF THE LARGEST BLOCK OF MEMORY   |
  165.                          DS:DX = POINTER TO BUFFER OF RETURNED DATA     |                   AVAILABLE (PARAGRAPHS) IF CARRY SET   |
  166.                          BX = COUNTRY CODE                              |                                                         |
  167.                                                                         | AH = 49 - FREE ALLOCATED MEMORY                         |
  168.               AH = 38 - SET CURRENT COUNTRY                             |       INPUT: ES = SEGMENT OF THE BLOCK TO BE RETURNED   |
  169.                   INPUT: DX = FFFF                                      |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  170.                          AL = 01-FE FOR COUNTRY CODES < 255             |                                                         |
  171.                          AL = FF FOR COUNTRY CODES >255                 | AH = 4A - MODIFY ALLOCATED MEMORY BLOCKS                |
  172.                          BX = COUNTRY CODE IF AL = FF                   |       INPUT: ES = THE SEGMENT OF THE BLOCK              |
  173.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |              BX = REQUESTED BLOCK SIZE IN PARAGRAPHS    |
  174.                                                                         |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  175.                  NOTE: SEE DOS MANUAL FOR COUNTRY INFORMATION           |              BX = MAXIMUM SIZE POSSIBLE IF CARRY SET    |
  176.                        BUFFER LAYOUT AND COUNTRY CODES                  |                                                         |
  177.                                                                         | AH = 4B - LOAD OR EXECUTE A PROGRAM                     |
  178.               AH = 39 - CREATE SUBDIRECTORY (MKDIR)                     |       INPUT: DS:DX = POINTER TO AN ASCIIZ FILENAME      |
  179.                   INPUT: DS:DX = POINTER TO ASCIIZ PATH NAME            |              ES:BX = POINTER TO A PARAMETER BLOCK       |
  180.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |              AL = 00 TO LOAD AND EXECUTE PROGRAM        |
  181.                                                                         |              AL = 03 TO JUST LOAD                       |
  182.               AH = 3A - REMOVE SUBDIRECTORY (RMDIR)                     |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  183.                   INPUT: DS:DX = POINTER TO ASCIIZ PATH NAME            |                                                         |
  184.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   | AH = 4C - TERMINATE A PROCESS                           |
  185.                                                                         |       INPUT: AL = RETURN CODE (FOR BATCH FILES)         |
  186.               AH = 3B - CHANGE THE CURRENT DIRECTORY (CHDIR)            |      OUTPUT: NONE                                       |
  187.                   INPUT: DS:DX = POINTER TO ASCIIZ PATH NAME            |                                                         |
  188.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   | AH = 4D - GET THE RETURN CODE OF A SUB-PROCESS          |
  189.                                                                         |       INPUT: NONE                                       |
  190.               AH = 3C - CREATE A FILE                                   |      OUTPUT: AL = EXIT CODE SENT BY SUB-PROCESS         |
  191.                   INPUT: DS:DX = POINTER TO ASCIIZ PATH NAME            |              AH = 00 FOR NORMAL TERMINATION             |
  192.                          CX = THE ATTRIBUTE OF THE FILE                 |              AH = 01 IF TERMINATED BY CTL-BREAK         |
  193.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |              AH = 02 IF CRITICAL DEVICE ERROR           |
  194.                          AX = FILE'S HANDLE IF CARRY NOT SET            |              AH = 03 IF TERMINATED BY FUNCTION REQ. 31  |
  195.                                                                         |                                                         |
  196.               AH = 3D - OPEN A FILE                                     | AH = 4E - FIND FIRST MATCHING FILE                      |
  197.                   INPUT: DS:DX = POINTER TO AN ASCIIZ PATH NAME         |       INPUT: DS:DX = POINTER TO ASCIIZ PATH/FILENAME    |
  198.                               ┌─┬─┬─┬─┬─┬─┬─┬─┐                         |              CX = ATTRIBUTE USED DURING SEARCH          |
  199.                          AL = │7│6│5│4│3│2│1│0│ OPEN MODE               |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  200.                               └─┴─┴─┴─┴─┴─┴─┴─┘                         |                                                         |
  201.                                │ │ │ │ │ │ │ │                          | AH = 4F - FIND NEXT MATCHING FILE                       |
  202.                                │ │ │ │ │ └─┴─┴───── ACCESS MODE         |       INPUT: DS:DX = UNCHANGED FROM PREVIOUS FUNCTION 4E|
  203.                                │ │ │ │ └─────────── ALWAYS 0            |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  204.                                │ └─┴─┴───────────── SHARING MODE        |                                                         |
  205.                                └─────────────────── INHERITANCE FLAG    | AH = 54 - GET VERIFY SETTING                            |
  206.                               (SEE DOS MANUAL FOR BIT VALUES)           |       INPUT: NONE                                       |
  207.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |      OUTPUT: AL = 00 IF VERIFY OFF, AL=01 IF VERIFY ON  |
  208.                          AX = FILE HANDLE IF CARRY NOT SET              |                                                         |
  209.                                                                         | AH = 56 - RENAME A FILE                                 |
  210.               AH = 3E - CLOSE A FILE HANDLE                             |       INPUT: DS:DX = POINTER TO OLD ASCIIZ PATH/FILENAME|
  211.                   INPUT: BX = THE FILE HANDLE TO CLOSE                  |              ES:DI = POINTER TO NEW ASCIIZ PATH/FILENAME|
  212.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  213.                                                                         |                                                         |
  214.               AH = 3F - READ FROM A FILE OR DEVICE                      | AH = 57 - GET/SET A FILE'S DATE AND TIME                |
  215.                   INPUT: BX = FILE HANDLE                               |       INPUT: AL = 00 TO GET; AL=01 TO SET               |
  216.                          DS:DX = POINTER TO READ BUFFER                 |              BX = FILE'S HANDLE                         |
  217.                          CX = NUMBER OF BYTES TO READ                   |              CX = TIME TO BE SET                        |
  218.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |              DX = DATE TO BE SET                        |
  219.                          AX = NUMBER OF BYTES READ IF CARRY NOT SET     |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  220.                                                                         |              CX = FILE'S TIME FROM TABLE                |
  221.               AH = 40 - WRITE TO A FILE OR DEVICE                       |              DX = FILE'S DATE FROM TABLE                |
  222.                   INPUT: BX = FILE HANDLE                               |                                                         |
  223.                          DS:DX = POINTER TO WRITE BUFFER                | AH = 59 - GET EXTENDED ERROR INFORMATION                |
  224.                          CX = NUMBER OF BYTES TO WRITE                  |       INPUT: BX = 00 FOR VERSIONS  3.0, 3.1, 3.2        |
  225.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |      OUTPUT: AX = EXTENDED ERROR CODE (SEE PANEL 1)     |
  226.                          AX = NUMBER OF BYTES WRITTEN IF CARRY NOT SET  |              BH = ERROR CLASS (SEE PANEL 1)             |
  227.                                                                         |              BL = SUGGESTED ACTION (SEE PANEL 1)        |
  228.               AH = 41 - DELETE A FILE FROM A SPECIFIED DIRECTORY        |              CH = LOCUS (SEE PANEL 1)                   |
  229.                   INPUT: DS:DX = POINTER TO AN ASCIIZ FILENAME          |                                                         |
  230.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   | AH = 5A - CREATE A TEMPORARY FILE                       |
  231.                                                                         |       INPUT: DS:DX = POINTER TO ASCIIZ PATH ENDING IN \ |
  232.               AH = 42 - MOVE FILE READ/WRITE POINTER                    |              CX = ATTRIBUTE                             |
  233.                   INPUT: CX:DX = DISTANCE TO MOVE IN BYTES (OFFSET)     |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  234.                          AL = ORIGIN OF MOVE:                           |              DS:DX = POINTER TO ASCIIZ PATH/FILENAME    |
  235.                               00 = BEGINNING OF FILE PLUS OFFSET        |                                                         |
  236.                               01 = CURRENT LOCATION PLUS OFFSET         | AH = 5B - CREATE A NEW FILE                             |
  237.                               02 = END OF FILE PLUS OFFSET              |       INPUT: DS:DX = POINTER TO ASCIIZ PATH/FILENAME    |
  238.                          BX = THE FILE'S HANDLE                         |              CX = ATTRIBUTE                             |
  239.                  OUTPUT: AX = ERROR CODE IF CARRY SET                   |      OUTPUT: AX = ERROR CODE IF CARRY SET               |
  240.                          DX:AX = NEW POINTER LOCATION IF CARRY NOT SET  |              AX = HANDLE IF CARRY NOT SET               |
  241.                                                                         |                                                         |
  242.                                            CONTINUED ON NEXT PANEL      |                                CONTINUED ON NEXT PANEL  |
  243.                                                                         |                                                         |
  244.  
  245.